#ifndef ALERT_H
#define ALERT_H

/* la classe Alert gère les alertes (date, heure, message à afficher, temps restant... */

#include <QObject>
#include <QDateTime>
#include <QString>

//--------------------------
class Alert : public QObject
{
    Q_OBJECT

private:
    QDateTime m_creationDateTime;	// date / heure de création
    QDateTime m_alertDateTime;		// date/heure de déclenchement
    QString m_alertMessage;			// message à afficher
    QDateTime m_appointmentDuration;	// durée du RDV

    bool m_active;					// est active ou pas

    static QString defaultMessage ()
    { return tr ("Le temps demandé est écoulé !"); }

    static QDateTime now ()			// moins long à écrire ! ;)
    { return QDateTime::currentDateTime (); }

    void configure (const QDateTime &date, const QString &message);

public:
    Alert (const QDateTime &alertDateTime, const QString &message = QString ());
    Alert (const int hours, const int minutes, const int seconds, const QString & message = QString ());

    void setActive (const bool b = true) { m_active = b; }
    void setInactive () { m_active = false; }
    bool isActive () const { return m_active; }
    QString message () const { return m_alertMessage; }

    bool timeIsUp ();
    int secondsElapsed ();
    int timeLeft ();
    int totalTime ();

    QString toolTip ();
};


#endif // ALERT_H
